From 10daa80b938a274eec3e471ad8891ffcb49d065b Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Sun, 2 Apr 2006 09:49:17 +0100 Subject: [PATCH] Enable HYPERVISOR_sched_op() and HYPERVISOR_sched_opt_compat() for ia64. Signed-off-by: Alex Williamson --- xen/arch/ia64/xen/hypercall.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/xen/arch/ia64/xen/hypercall.c b/xen/arch/ia64/xen/hypercall.c index 971007cbf7..286f1a42ff 100644 --- a/xen/arch/ia64/xen/hypercall.c +++ b/xen/arch/ia64/xen/hypercall.c @@ -38,7 +38,7 @@ hypercall_t ia64_hypercall_table[] = (hypercall_t)do_ni_hypercall, /* do_stack_switch */ (hypercall_t)do_ni_hypercall, /* do_set_callbacks */ (hypercall_t)do_ni_hypercall, /* do_fpu_taskswitch */ /* 5 */ - (hypercall_t)do_ni_hypercall, /* do_sched_op_compat */ + (hypercall_t)do_sched_op_compat, (hypercall_t)do_dom0_op, (hypercall_t)do_ni_hypercall, /* do_set_debugreg */ (hypercall_t)do_ni_hypercall, /* do_get_debugreg */ @@ -61,7 +61,7 @@ hypercall_t ia64_hypercall_table[] = (hypercall_t)do_ni_hypercall, /* do_mmuext_op */ (hypercall_t)do_ni_hypercall, /* do_acm_op */ (hypercall_t)do_ni_hypercall, /* do_nmi_op */ - (hypercall_t)do_ni_hypercall, /* */ + (hypercall_t)do_sched_op, (hypercall_t)do_ni_hypercall, /* */ /* 30 */ (hypercall_t)do_ni_hypercall /* */ }; @@ -70,6 +70,11 @@ static int xen_hypercall (struct pt_regs *regs) { switch (regs->r2) { + case __HYPERVISOR_sched_op_compat: + regs->r8 = do_sched_op_compat((int) regs->r14, + (unsigned long) regs->r15); + break; + case __HYPERVISOR_dom0_op: regs->r8 = do_dom0_op(guest_handle_from_ptr(regs->r14, dom0_op_t)); @@ -117,6 +122,11 @@ xen_hypercall (struct pt_regs *regs) regs->r8 = do_multicall(guest_handle_from_ptr(regs->r14, multicall_entry_t), (unsigned int) regs->r15); break; + case __HYPERVISOR_sched_op: + regs->r8 = do_sched_op((int) regs->r14, + guest_handle_from_ptr(regs->r15, void)); + break; + default: printf("unknown xen hypercall %lx\n", regs->r2); regs->r8 = do_ni_hypercall(); -- 2.30.2